package com.yuqian.JavaSe.thread.cap1.title7;
/**
 * 停止线程的方法
 * 1.使用退出标志，使线程正常退出，也就是当run方法完成后线程终止
 * 2.使用stop方法强行终止线程，但是不推荐使用这个方法，该方法已经过时
 * 3.使用interrupt方法中断线程
 * @author yuqian
 *
 */
public class StopThread {
	//interrupt  该方法仅仅是在当前线程中打一个停止的标记，并不是真正的停止线程
	//这个例子中会一直执行下去 
	public static void main(String[] args) throws InterruptedException {
		Thread my = new Thread(new MyThread());
		my.start();
		Thread.sleep(200);
		my.interrupt();
	}
}

class MyThread implements Runnable{

	public void run() {
		try {
			Thread.sleep(20000000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		for(int i=0;i<5000;i++){
			System.out.println("i="+(i+1));
			
		}
	}
	
}
/**
 * 使用interrupt()方法改变，
 * static interrupted() 测试当前线程是否已经中断，静态方法
 * 如果使用该方法后会清除中断状态，就是说连续使用两次该方法如果第一次返回true，第二次返回false
 * 
 * isInterrupted  测试当前线程是否已经中断 但是不会清除中断状态
 * 
 * ！！在thread sleep()时调用interrupt方法会抛出异常
 */
